<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	template="/templates/templatePrincipal.xhtml">
	<ui:param name="mbean" value="${horarioPadraoMB}" />

	<ui:define name="content">
		<h:form id="formHorarios">
			<p:panel header="Configurar Horário">
				<h:panelGrid columns="3"
					columnClasses="coluna-direita, coluna-esquerda">
					<h:outputText value="Médico: " />
					<p:selectOneMenu value="#{mbean.medico}" label="Médico">
						<f:selectItems value="#{mbean.medicos}" var="medico"
							itemLabel="#{medico.funcionario.usuario.nome}" />
						<f:converter converterId="medicoConverter" />
						<p:ajax update="@form" process="@this" listener="#{mbean.selecionarMedico}"/>
					</p:selectOneMenu>

					<p:commandButton value="Adicionar Horários" type="button"
						onclick="confHorarioDialog.show();" />
				</h:panelGrid>

				<br />

				<p:tabView id="tabView" var="diaAtendimento"
					value="#{mbean.diasAtendimento}">

					<p:tab title="#{diaAtendimento.diaSemana.nome}">
						<p:dataTable value="#{diaAtendimento.horarios}" var="horario"
							emptyMessage="Nenhum horário cadastrado.">
							<p:column>
								<f:facet name="header">
									<h:outputText value="Início" />
								</f:facet>
								<h:outputText value="#{horario.hora}">
									<f:convertDateTime pattern="HH:mm" locale="pt_BR"
										timeZone="America/Sao_Paulo" />
								</h:outputText>
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="Término" />
								</f:facet>
								<h:outputText value="#{horario.horaTermino}">
									<f:convertDateTime pattern="HH:mm" locale="pt_BR"
										timeZone="America/Sao_Paulo" />
								</h:outputText>
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="Tipo de Consulta" />
								</f:facet>
								<h:outputText value="#{horario.tipoConsulta.nome}" />
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="Tipo de Horário" />
								</f:facet>
								<h:outputText value="#{horario.tipoHorario.nome}" />
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="Quantidade de Pacientes" />
								</f:facet>
								<h:outputText value="#{horario.quantidadePacientes}" />
							</p:column>

							<p:column style="width:32px">
								<p:commandLink title="Excluir horário" oncomplete="confirmacaoExcluir.show();">
									<p:graphicImage value="#{resource['images/excluir.png']}" />
									<f:setPropertyActionListener target="#{mbean.diaAtendimentoSelecionado}" value="#{diaAtendimento}"/>
									<f:setPropertyActionListener target="#{mbean.horarioSelecionado}" value="#{horario}"/>
								</p:commandLink>
							</p:column>
						</p:dataTable>

						<br />

						<p:commandButton value="Excluir Todos os Horários" oncomplete="confirmacaoExcluirTodos.show();">
							<f:setPropertyActionListener target="#{mbean.diaAtendimentoSelecionado}" value="#{diaAtendimento}"/>
						</p:commandButton>

						<p:confirmDialog
							message="Deseja excluir o horário selecionado?"
							header="Confirmação" severity="alert"
							widgetVar="confirmacaoExcluir" appendToBody="true" modal="true">
							<p:commandButton value="Sim"
								action="#{mbean.excluirHorario}"
								update="@form" onclick="confirmacaoExcluir.hide();" />
							<p:commandButton value="Não"
								onclick="confirmacaoExcluir.hide(); " type="button" />
						</p:confirmDialog>


						<p:confirmDialog
							message="Deseja excluir todos os horários desse dia?"
							header="Confirmação" severity="alert"
							widgetVar="confirmacaoExcluirTodos" appendToBody="true" modal="true">
							<p:commandButton value="Sim"
								action="#{mbean.excluirHorariosDia}"
								update="@form" onclick="confirmacaoExcluirTodos.hide();" />
							<p:commandButton value="Não"
								onclick="confirmacaoExcluirTodos.hide(); " type="button" />
						</p:confirmDialog>
					</p:tab>
				</p:tabView>
			</p:panel>
			<p:growl showSummary="true" showDetail="true" globalOnly="true" />
		</h:form>

		<p:dialog header="Configurar Horário" widgetVar="confHorarioDialog"
			resizable="false" modal="true" appendToBody="true" width="800"
			height="350">
			<h:form id="formCadastro">
				<p:pickList value="#{mbean.diasSemana}" var="diaSemana"
					itemValue="#{diaSemana}" itemLabel="#{diaSemana.nome}"
					converter="diaSemanaConverter" />

				<h:panelGrid columns="4" id="tabelaValores"
					columnClasses="coluna-direita, coluna-esquerda, coluna-direita, coluna-esquerda">
					<h:outputText value="Horário Inicial:" />
					<p:inputText value="#{mbean.horarioInicial}">
						<f:convertDateTime pattern="HH:mm" locale="pt_BR"
							timeZone="America/Sao_Paulo" />
						<p:ajax update="tabelaValores" process="@this" global="false" />
					</p:inputText>

					<h:outputText value="Duração do Atendimento:" />
					<p:spinner value="#{mbean.duracaoAtendimento}"
						id="duracaoAtendimento">
						<p:ajax update="tabelaValores" process="@this" global="false" />
					</p:spinner>

					<h:outputText value="Número de atendimentos:" />
					<p:spinner value="#{mbean.numeroAtendimento}">
						<p:ajax update="tabelaValores" process="@this" global="false" />
					</p:spinner>

					<h:outputText value="Horário Final: " />
					<h:inputText value="#{mbean.horarioFinal}" readonly="true">
						<f:convertDateTime pattern="HH:mm" locale="pt_BR"
							timeZone="America/Sao_Paulo" />
						<p:ajax update="tabelaValores" process="@this" global="false" />
					</h:inputText>

					<h:outputText value="Tipo de Horário:" />
					<p:selectOneMenu value="#{mbean.tipoHorario}" effect="drop">
						<f:selectItems value="#{mbean.tiposHorario}" var="tipo"
							itemLabel="#{tipo.nome}" />
						<p:ajax update="tabelaValores" process="@this" global="false" />
					</p:selectOneMenu>

					<h:outputText value="Quantidade de Pacientes: " />
					<p:spinner value="#{mbean.quantidadePacientes}">
						<p:ajax update="@none" process="@this" global="false" />
					</p:spinner>

					<h:outputText value="Tipo de Consulta:" />
					<p:selectOneMenu value="#{mbean.tipoConsulta}" effect="drop">
						<f:selectItems value="#{mbean.tiposConsulta}" var="tipo"
							itemLabel="#{tipo.nome}" />
						<p:ajax update="@none" process="@this" global="false" />
					</p:selectOneMenu>

					<h:outputText />
					<p:commandButton value="Gerar Horários"
						update=":formHorarios tabelaValores"
						onclick="confHorarioDialog.hide();"
						action="#{mbean.salvarHorarios}" />
				</h:panelGrid>
				<p:growl showSummary="true" showDetail="true" globalOnly="true" />
			</h:form>
		</p:dialog>
	</ui:define>
</ui:composition>
